#include <gtk/gtk.h>

int main(int argc, char *argv[])
{
    GtkWidget *window;  //指向窗口的指针
    GtkWidget *table;   //指向表格的指针
    GtkWidget *label1;  //指向标签1的指针
    GtkWidget *label2;  //指向标签2的指针
    GtkWidget *entry1;  //指向文本框1的指针
    GtkWidget *entry2;  //指向文本框2的指针
    GtkWidget *button1; //指向按钮1的指针
    GtkWidget *button2; //指向按钮2的指针

    gtk_init(&argc, &argv); //初始化图形显示环境

    window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_window_set_title(GTK_WINDOW(window), "用户登录");
    //定义一个3行2列的表格，单元格大小会根据单元格中的元件大小自动调整
    table = gtk_table_new(3, 2, FALSE);
    //新建用户名标签
    label1 = gtk_label_new("用户名");
    gtk_widget_set_size_request(label1, 38, 15);
    //新建密码标签
    label2 = gtk_label_new("密码");
    gtk_widget_set_size_request(label2, 30, 15);

    entry1 = gtk_entry_new(); //新建用户名文本框
    entry2 = gtk_entry_new(); //新建密码文本框

    button1 = gtk_button_new_with_label("取消");
    button2 = gtk_button_new_with_label("确定");

    gtk_container_add(GTK_CONTAINER(window), table); //将表格添加到窗口中

    //下面是将6个元件分别添加到表格相应的位置中
    gtk_table_attach(GTK_TABLE(table), label1, 0, 1, 0, 1, GTK_FILL, GTK_FILL, 20, 10);
    gtk_table_attach(GTK_TABLE(table), entry1, 1, 2, 0, 1, GTK_FILL, GTK_FILL, 10, 10);
    gtk_table_attach(GTK_TABLE(table), label2, 0, 1, 1, 2, GTK_FILL, GTK_FILL, 20, 10);
    gtk_table_attach(GTK_TABLE(table), entry2, 1, 2, 1, 2, GTK_FILL, GTK_FILL, 10, 10);
    gtk_table_attach(GTK_TABLE(table), button1, 0, 1, 2, 3, GTK_FILL, GTK_FILL, 20, 10);
    gtk_table_attach(GTK_TABLE(table), button2, 1, 2, 2, 3, GTK_FILL, GTK_FILL, 10, 10);

    gtk_widget_show_all(window); //显示窗口中的所有元件

    gtk_main();

    return 0;
}
//解决pkg-config
// export PATH="/usr/bin:$PATH"

//编译命令
// gcc -o login_test login_test.c `pkg-config --libs --cflags gtk+-2.0`
